package com.ctrip.demo.leetcode;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class CombineDemo {

    private static List<SameOr> getDemo1() {


        List<SameOr> sameOrList = new ArrayList<>();

        SameOr sameOr = new SameOr();
        sameOr.setNumber("10086");
        sameOr.setName("zhangsan");

        SameOr sameOr2 = new SameOr();
        sameOr2.setNumber("10087");
        sameOr2.setName("lisi");

        sameOrList.add(sameOr);
        sameOrList.add(sameOr2);

        return sameOrList;

    }
    private static List<SameOr> getDemo2() {


        List<SameOr> sameOrList = new ArrayList<>();

        SameOr sameOr = new SameOr();
        sameOr.setNumber("10086");

        sameOr.setSex("0");
        sameOr.setWork("programmer");

        SameOr sameOr2 = new SameOr();
        sameOr2.setNumber("10087");
        sameOr2.setSex("1");
        sameOr2.setWork("programmer");


        sameOrList.add(sameOr);
        sameOrList.add(sameOr2);

        return sameOrList;

    }

    private static void getCombineDemo2(List<SameOr> demo1, List<SameOr> demo2) {
        HashMap<String, SameOr> map = new HashMap<>();

        for (SameOr sameOr : demo1) {
            map.put(sameOr.getNumber(), sameOr);
        }

        for (SameOr sameOr : demo2) {
            String sameOrNumber = sameOr.getNumber();
            SameOr sameOr1 = map.get(sameOrNumber);
            if (sameOr1 == null) {
                continue;
            }

            if (sameOr.getName() == null) {
                sameOr.setName(sameOr1.getName());
            }

            if (sameOr.getSex() == null) {
                sameOr.setSex(sameOr1.getSex());
            }

            if (sameOr.getWork() == null) {
                sameOr.setWork(sameOr1.getWork());
            }

        }

    }

    public static void main(String[] args) {
        //两个数组合并成一个
        List<SameOr> demo1 = getDemo1();
        List<SameOr> demo2 = getDemo2();


        System.out.println("创建第一个数据:"+demo1);

        System.out.println("创建第二个数据:"+demo2);

        getCombineDemo2(demo1, demo2);

        System.out.println("结果集:"+demo2);


        for (int i = 0; i < 10; i++) {
            if(i == 5) {
                return;
            }

            System.out.println(i);
        }
    }


}
